An atomic access is an attempt by one of a number of computer processors to exclusively perform a read, write, or modify on shared data in storage. Most reads and writes are atomic by default. However, in some computer programming languages, there are specific commands that ensure this atomicity. For example, the x86 assembler language uses a LOCK prefix on read-modify-write commands that are atomic. A read-modify-write command is an instruction that combines reading and arithmetic, and writes the result. These atomic accesses take place within computer programs that are designed to run on a specific computer processor. However, it may be desirable to run a computer program generated for one processor on a different computer processor.
Computer processors are designed to operate based on a prescribed machine language that can program the device. Different processors, such as the ARM and the x86 processors, each operate according to their own machine languages. Computer processors can thus be programmed to perform any number of functions based on programs written in the particular machine language. Therefore, it may be difficult for applications written in one machine language, i.e. configured to run on one computer processor, to be installed and run on a processor that operates based on a different machine language.